Você espera que o upsert crie o livro ausente, mas não é assim que funciona. Acho que você criou 2 consultas, uma para verificar se o livro existe e outra para atualizá-lo/criá-lo (ou push ou você cria o livro)