Eu sugeriria executar uma consulta para ver se o registro existe primeiro e, em seguida, você pode ter uma lógica bash para decidir o que fazer com base no resultado da consulta. Talvez algo assim ...
CHECK_ROW_EXISTS=$(mysql -u dbuser -p --batch -N -e "SELECT COUNT(*) FROM dbname.dbtable WHERE id = ${ID_TO_CHECK}")
Usar --batch
e -N
removerá a formatação para podermos atribuir o resultado a uma variável bash e decidir o que fazer a partir daí.
A outra opção é verificar o código de status de saída da inserção do mysql e, se falhar, decidir o que fazer a partir daí.
Outras leituras: obtém o resultado da consulta sql sem tabela formato | Estouro de pilha