Próximo do momento 7'45'' do vídeo não teria ficado faltando atribuir o retorno do merge
para a referência do próprio objeto, pelo motivo citado momentos antes no próprio vídeo, que é o fato do merge
retornar um novo objeto no estado Managed?.
Penso, deveria ser algo como:
public Categoria atualizar(Categoria categoria) {
return categoria = this.em.merge(categoria);
}