Savepoints tidak akan melakukan apa yang Anda inginkan. Saat Anda melakukan roll back ke savepoint, semua hal setelah savepoint tersebut akan dibatalkan, terlepas dari apakah savepoints kemudian dibuat.
Pikirkan savepoint seperti "tumpukan". Anda tidak dapat menarik sesuatu dari tengah tumpukan, Anda harus menghapus semuanya hingga lapisan yang Anda inginkan.
Anda mungkin mencari transaksi otonom. Tidak ada database yang ingin Anda gunakan yang mendukungnya. Di PostgreSQL Anda dapat mengatasinya menggunakan modul dblink untuk membuat koneksi baru ke database dan bekerja dengannya; lihat http://www.postgresql.org/docs/current/static/ dblink.html . Saya tidak tahu solusi apa yang ditawarkan MySQL atau SQLite, tetapi Google akan membantu sekarang setelah Anda mengetahui istilah yang Anda cari.
Saya menyarankan Anda menemukan cara untuk mengatasi persyaratan desain aplikasi ini jika memungkinkan. Minta aplikasi Anda menggunakan dua koneksi database dan dua transaksi untuk melakukan apa yang Anda perlukan, dengan mengoordinasikan keduanya sesuai kebutuhan.