La transazione la avvio sempre prima di effettuare la lettura dei dati che vanno valutati e poi eventualmente modificati.
Ho letto i due link ed è esattamente quello che ho fatto fino ad ora.

Dunque il problema sql è risolto, ora devo valutare correttamente la situazione per l'integrità dei dati tra transazioni e LAST_INSERT_ID ma ritengo che non dovrebbe sussistere alcun problema.

Grazie!

NB: forse mi verranno in mente altri dubbi sulla questione, mi pareva di avere qualcos'altro, ma ora mi sfugge