Posso pensar em três soluções:
-
Você insere apenas uma linha por instrução, mas isso é ineficiente.
-
Você classifica as linhas antes de inseri-las.
-
Você tenta novamente uma transação se ela obtiver um erro de deadlock ou serialização.
Eu preferiria a terceira solução, a menos que os erros aconteçam com muita frequência.