Utilisez MERGE
Votre SQL échoue car 2 appels simultanés qui se chevauchent et très proches obtiendront tous deux "faux" de EXISTS avant que l'INSERT ne se produise. Ils essaient donc tous les deux d'INSERER, et bien sûr l'un échoue.
Ceci est expliqué plus ici :Sélectionner/Insérer la version d'un Upsert :existe-t-il un modèle de conception pour une concurrence élevée ? Cette réponse est cependant ancienne et s'applique avant l'ajout de MERGE