There is an implementation of withTransaction in snapshots/devmapper/snapshotter.go that I think could be used elsewhere and would make the code more elegant.
I've only refactored snapshots/btrfs/btrfs.go so far. If it's ok, I will refactor the rest.