Read-only transactions provide guaranteed consistency across several reads,
but do not allow writes. Read-only transactions can be configured to read at
timestamps in the past. Read-only transactions do not need to be committed and
do not take locks.
Locking read-write transactions are the only transaction type that support writing
data into Cloud Spanner. These transactions rely on pessimistic locking and, if
necessary, two-phase commit. Locking read-write transactions may abort, requiring
the application to retry.