Allora, con l'esempio minimale, chiarissimo, un sospetto mi e' venuto.
Questo apparentemente sembra un classico problema di data isolation. Ovvero, chi legge non trova il dato che tu ti saresti aspettato che trovasse.
Il motivo e' che tipicamente per essere completamente ACID si paga un costo elevato. Quindi la maggior parte dei DB di fatto usano livelli di isolation piu' bassi che normalmente funzionano molto bene, ma quando vai a controllare nello specifico si manifestano grosso modo in questo modo. Il fatto che riaprendo la connessione il problema si risolve e' consistente con questo: riaprendo la connessione di fatto vedi l'ultimo stato salvato, inclusa la modifica.
Ora io non posso essere davvero che sia questo. Puoi cambiare i parametri di isolation per forzare il massimo e a quel punto dovrebbe funzionare tutto.
Un altra possibilita' e' che semplicemente le operazioni invocate non vengono completate prima che l'altro legga. Nel senso che tu stai guardando i log da Python, quindi vedi quello che ti dice il db, non quello che fa il DB. E' interamente possibile che quando fai session execute per scrivere tu debba in qualche modo fare commit (implicito alla chiusura). Essenzialmente questo e' vero anche nel caso in cui ci sono transazioni. Molti db invocano di default (oppure perche' configurati cosi') i comandi che gli dai dentro una transazione implicita, quindi devi committare la transazione (molti db hanno il comando COMMIT). Quando chiudi la connessione, la transazione e' automaticamente committata (o rollbackata se in errore). Si, ovviamente in questo caso sei comunque legato alla questione isolation... sarebbe una lunga discussione, ma le transazioni sono uno strumento prezioso nel campo della data isolation.
Non ho voglia di andare a vedere la documentazione di Maria DB, questi sono problemi che ho visto con altri db che si manifestano in modo simile. Hai anche abbastanza informazione per ingegnarti e capire come determinare se e' una delle due (che so... o leggendo la documentazione con quest'ottica in mente oppure facendo esperimenti -- no, provare a tirare comandi a caso non conta come esperimento... anche se e' possibile che aggiungendo COMMIT nel posto giusto risolvi davvero).