Transactions can be retried if an operation fails, as can commit operations

A RuntimeException thrown by the driver or library may be associated with one or more error labels, which can be checked using the hasErrorLabel() method