Savepoints vil ikke gøre, hvad du vil. Når du ruller tilbage til et lagringspunkt, rulles alt efter det lagringspunkt tilbage, uanset om senere lagringspunkter blev oprettet.
Tænk på savepoints som en "stak". Du kan ikke trække noget ud af midten af stakken, du skal fjerne alt ned til det lag, du ønsker.
Du leder sandsynligvis efter autonome transaktioner. Ingen af de databaser, du vil bruge, understøtter dem. I PostgreSQL kan du omgå dette ved at bruge dblink-modulet til at oprette en ny forbindelse til databasen og arbejde med den; se http://www.postgresql.org/docs/current/static/ dblink.html . Jeg ved ikke, hvilke løsninger MySQL eller SQLite tilbyder, men Google hjælper nu, hvor du kender det udtryk, du leder efter.
Jeg anbefaler, at du finder en måde at omgå dette krav til applikationsdesign, hvis det er muligt. Få din applikation til at bruge to databaseforbindelser og to transaktioner til at gøre det, du har brug for, og sørge for at koordinere de to efter behov.