ti direi di usare una transazione dentro unito ad un try/catch per la gestione degli errori