Hallo Mike,
ja, es kann schon vorkommen, dass sich zwei Transaktionen gegenseitig blockieren (Deadlock). Welche Datenbank und Version setzt Du ein? Brauchst Du wirklich einen "LOCK"? Das Problem ist, dass ein "LOCK" die gesamte Tabelle sperrt und nicht nur einzelne Datensätze.
LOCK TABLES sperrt Tabellen für den aktuellen Thread. Wenn eine Tabelle von anderen Threads gesperrt ist, wird der laufende
Vorgang angehalten, bis alle Sperren erwirkt werden können. UNLOCK TABLES hebt Sperren auf, die vom aktuellen Thread
gehalten werden. Die Sperren aller Tabellen, die vom aktuellen Thread gesperrt werden, werden implizit aufgehoben, wenn der
Thread eine andere LOCK TABLES-Anweisung absetzt oder die Verbindung zum Server geschlossen wird.
http://dev.mysql.com/doc/refman/5.1/de/lock-tables.html
Grüße
Thomas