SharePoint's lists are not really relational data, and therefore the idea of doing something as a real transaction isn't possible, i.e. with automatic rollback, etc.
If I understand you correctly you are trying to effectively 'reassign' the item from one list to another, and I don't believe that that is possible in any way. We've done data extra and import, but that always does effectively recreates the item.
One of the things that often trip people up is equating SharePoint lists to database tables, and assume that they can be treated and manipulated as such. Unfortunately they aren't, at least not yet.
A strategy I have used to move data over time from an "old list" to a "new list" is to add an event handler for any Add, Delete or Update on the list. Whenever those were triggered we would update the entries in the new table, and when the cut over date arrived whatever entries had not already been moved over we would examine to determine 1. are they really needed? are they used? and 2. the best way to move them over.
Hope that helps