Заключването е имплицитно, да, но не се извършва от executeUpdate()
. Двигателят за съхранение в MySQL управлява заключването и отключването.
Всеки път, когато пишете в MyISAM таблица, вашата заявка изчаква заключването на запис в таблицата, за да бъде налично, заключването на запис се придобива, записът е завършен и заключването на запис се освобождава. Няма истинско едновременно записване в MyISAM, защото всеки работник всъщност чака на опашка за заключването на запис. Не получавате грешка, защото заявките за запис са сериализирани.
Ситуацията с InnoDB е подобна, но много различна, тъй като InnoDB заключва само част от таблицата, обикновено на ниво ред, където InnoDB може да заключи диапазон в рамките на индекс, като по този начин заключва редовете в този диапазон в индекса (и празнина, която ги предхожда). Това заключване е по-подробно от заключването на таблицата, което позволява подобрено поведение на паралелност, но няма едновременна операция на един и същи ред – всеки работник чака заключването или заключванията, от които се нуждае.
И в двата случая ключалките се вземат имплицитно.