Under heavy load, it is possible for abortTransaction to fail while checking out the session. In this case, we will get a LockTimeout (marked transient). The transaction has been aborted, so we can simply ignore this error.
The same code also fails to handle different errors for different shards, which can also happen. We can use the "raw" field to make sure each error is an allowable one.