Se me ocurren tres soluciones:
-
Inserta solo una fila por declaración, pero eso es ineficiente.
-
Ordena las filas antes de insertarlas.
-
Vuelva a intentar una transacción si obtiene un punto muerto o un error de serialización.
Preferiría la tercera solución a menos que los errores ocurran con mucha frecuencia.