Boa noite, tudo em paz?
Primeiro temos que entender que objetos possuem estados, basicamente pra identificar o que é novidade, o que foi alterado e o que permanece igual - o git também faz isso. Esses estados são frequentemente verificados pela aplicação para que o framework saiba quais operações realizar quando o método SaveChanges for acionado (responsável pelas operações no banco de dados).
Outro ponto é que objetos são tipo referência. Então quando vc recebe um objeto do contexto e atribui em uma variável local, vc já está alterando o contexto pq o que o compilador te entrega é o seu endereço e não seus valores, não uma cópia. (Se ficar em dúvida nesse ponto, recomendo ler um artigo da casa mesmo sobre tipo valor e referência).
Voltando ao primeiro ponto.. vc alterou um objeto que veio do context, então a aplicação vai marcar esse objeto como modificado. Da próxima vez que o SaveChanges for executado, a aplicação fará uma varredura das operações que foram realizadas na sua API para enviar ao banco de dados e encontrará o seu objeto filme com o estado modificado. Ele então enviará ao banco este objeto como uma operação update, certo?
Então por isso não é necessário uma chamada explicita, como o Remove, mas o método existe (sim, ele existe xD) e usá-lo ou não vai depender da sua aplicação e regras de negócio.
Recomendo esse artigo aqui (com a permissão da casa), ele ilustra diferentes formas de realizar um update com c#:
modifying data with EF Core