Отказ от ответственности: MySQL, как правило, полон сюрпризов, поэтому следующее может быть неверным.
То, что вы делаете, не имеет для меня никакого смысла: вы делаете коммит после SELECT, что должно сломать блокировку. Так что, по моему мнению, ваш код не должен вызывать значительных накладных расходов; но это также не даст вам улучшения согласованности.
В общем, SELECT FOR UPDATE может быть очень разумным и разумным способом обеспечения согласованности, не принимая больше блокировок, чем действительно необходимо. Но, конечно, его следует использовать только при необходимости. Возможно, у вас должны быть разные пути кода: один (использующий FOR UPDATE), используемый, когда полученное значение используется в последующей операции изменения. И еще один (без использования FOR UPDATE), используемый, когда значение не нужно защищать от изменений.