eğer sorun cache ile ilgiliyse (çok sık kullanmadığımdan çalışma mantığını ve sürelerini sadece teorik olarak biliyorum) bu yaptığınız çözüm mantık yürüterek anlatayım..
aynı anda 2 farklı yerden aynı bilgilerle kayıt girildiğinde ip den dolayı sorun olmaz düzgün çalısır
ama ard arda aynı kişi bu 3 sütun dışında diğer sütunları değiştirip veri girerse dalgınlıkla vs ya da bilerek farklı veriler saklamak için
bu durumda sistem kullanıcıya hata mesajı vermesi gerekir bu kayıt var yeni bir tane deneyin gibi.
ama hata vermeyecektir (cache düşündüğüm gibi çalışıyorsa) bunun yerine iki veriyi de hafızaya alacaktır.
daha sonra bu hafızadaki verilerden hangisini daha önce sisteme kaydederse sorunsuz kaydedecek ikincisi hata verdiğinden eklenmeyecektir. ama kullanıcının veri girişiyle eş zamanlı olmadığından kullanıcı bu hatadan haberdar olamayacaktır.
bu söylediğim mantıkla ilerliyorsa sizin select sorgunuzu cahce sistemine girmeden yapmanız gerekir. insert te hata yok çünkü select te var.
siz bence eğer yapabiliyorsanız cache sistemini o yazdığınız select sorgusunu kapsamayacak şekilde değiştirmelisiniz. daha da özü store procedure olarak yazıp çağırmanızdır. tabi yazarken kafam karıştı iyice

okuyup ekleme düzenleme yapabilirim bu mesajıma
düzeltme: eğer insert sorgusu ön belleğe alınmıyorsa ki alınmaz yaptığınız işlem sorunsuz çalışacak ama oluşan hata mesajını yönetemeyeceksiniz. sistem ön bellekte kayıt görünmediğinden her iki insert sorgusunu da doğrudan çalıştıracak 1. sorgu işlenecek ikinci hata verecektir.