Perché gli aggiornamenti dei singoli documenti sono atomici , indipendentemente dall'ordine di esecuzione dei tuoi due comandi, il documento finirà come:
{amount : 9999, approved: true, ...}
Se il primo comando viene eseguito per primo, il secondo comando lo sovrascriverà.
Se il secondo comando viene eseguito per primo, il primo comando non ha effetto in quanto approve
ora è true
quindi le condizioni di aggiornamento non corrisponderanno.
Quello che stai (correttamente) facendo è la consolidata concorrenza ottimistica o "aggiorna se corrente" approccio alla gestione dell'accesso simultaneo.