Da forma como está o código, está dando erro de unique key quando adiciona um novo registro e atualiza a tabela.
Pra atualizar a tabela não está usando o autor com o id preenchido que deveria ser retornado pela api, mas sim usando o autor "em memória" que não tem a informação de id.