Forse non mi sono spiegato bene.

Allora partiamo da un presupposto sul quale spero siamo tutti d'accordo.

PHP non è multi thread (questo comunque non esclude al 100% le race condition)

Detto questo il punto che non mi è chiaro è, se ho tre account diversi registrati, uno con 1000 euro e due senza, anche nell'eventualità che si verifichi una race condition su di un trasferimento soldi, mi spieghi come faccio a richiedere di trasferire soldi che non ho?
Il primo controllo che farà è vedere se ci sono effettivamente i 1000 euro da trasferire, ma siccome ho lanciato due thread paralleli il controllo andrà a buon fine per entrambe le richieste, e quindi sposterà 1000 euro a un utente e 1000 all'altro raddoppiando il suo capitale.
Questa situazione non ha senso, non vedo proprio come possa verificarsi.

Tre account diversi insistono su tre entità diverse e sono associati a tre balance account diversi... per questo non capisco come possa questo specifico scenario essere problematico.