It would be nice if we could make the transaction somehow atomic, but it is impractical in my opinion.

I'd leave it as it is for now.