Транзакция A заблокировала таблицу 1 и пытается прочитать данные из таблицы 2. Одновремено тразнакция B заблокировала таблицу 2 и пытается прочитать данные из таблицы 1. Здесь и возникает deadlock.
DeSp - и не факт что в разных участках кода порядок блокировок таблиц не может поменяться
.
Обратите внимание на commit в 5763 кодеюинте.