Rollback is pretty nice right now, however, it does not handle the case well where a user
CTRL+C's randomly during import -- we can lose the task being imported if the exception throws before we track it.
Part of the issue here is that the import function is quite gigantic and complex. We should really review that thing and split it up into manageable pieces; at that point, we could more easily define exception paths and rollback more clearly.
Also, with a bit more hacking, this could be done without a rework. That is not an excuse to avoid decoupling it.