Gebruikt u InnoDB-tabellen of MyISAM-tabellen? MySQL ondersteunt geen transacties op MyISAM-tabellen (maar u krijgt geen foutmelding als u ze probeert te gebruiken). Zorg er ook voor dat uw transactie-isolatieniveau correct is ingesteld, het moet SERIALIZABLE zijn, wat niet de standaard is voor MySQL.
Dit artikel heeft een goed voorbeeld dat de impact van de verschillende isolatieniveaus uitlegt aan de hand van een voorbeeld dat erg lijkt op het uwe.