Что один запрос, что другой - атомарные (при AUTOCOMMIT = 1) и их выполнение не пересекается с другими запросами. Никакой дополнительной блокировки для них не требуется, скорость запросов, при уникальном `id` будет практически одинаковая.
Блокировка требуется, если вы сначала получаете баланс (SELECT), затем проверяете возможность списания средств, и только потом списываете их (UPDATE). В таком случае надо блокировать таблицу или строку, чтобы за время проверки не было списания средств другим потоком.