Savepoints doen niet wat je wilt. Wanneer je teruggaat naar een opslagpunt, wordt alles na dat opslagpunt teruggedraaid, ongeacht of er later opslagpunten zijn gemaakt.
Beschouw spaarpunten als een "stapel". Je kunt niet iets uit het midden van de stapel trekken, je moet alles verwijderen tot de laag die je wilt.
U bent waarschijnlijk op zoek naar autonome transacties. Geen van de databases die u wilt gebruiken, ondersteunt ze. In PostgreSQL kun je dit omzeilen door de dblink-module te gebruiken om een nieuwe verbinding met de database te maken en ermee aan de slag te gaan; zie http://www.postgresql.org/docs/current/static/ dblink.html . Ik weet niet welke oplossingen MySQL of SQLite bieden, maar Google zal je helpen nu je de term kent die je zoekt.
Ik raad u aan een manier te vinden om deze vereiste voor toepassingsontwerp, indien mogelijk, te omzeilen. Laat uw toepassing twee databaseverbindingen en twee transacties gebruiken om te doen wat u nodig hebt, en zorg voor de coördinatie van de twee zoals vereist.