Jedynym sposobem, w jaki może się to wydarzyć, jest błąd w MariaDB, ponieważ gdy Tx zmodyfikuje rekord, zablokuje go do czasu zatwierdzenia lub wycofania. Inne Tx zablokowałyby UPDATE z powodu blokady, ale warunek musi zostać ponownie oceniony po zwolnieniu blokady.
Spróbuj przełączyć się na READ_COMMITTED i sprawdź, czy to rozwiąże problem. Może to być anomalia REPEATABLE_READ.