Vi que já foram criados dois tópicos sobre este assunto, mas a resposta não foi satisfatória sobre deixar o método atualizar da classe DAO como void.
No vídeo (aproximadamente 5:58) o instrutor diz que o método merge não altera o estado do objeto recebido como parâmetro (que continua detached), então o método atualizar também não vai ter efeito nenhum se não retornar o objeto managed. Ou o objetivo do método atualizar é outro?