When trying to lock a table, we check if it was locked at the start of the
transaction otherwise we raise a TransactionError so the all transaction is
restarted over with the table added to the table to lock.
This ensures when a table is locked that we always read the last committed
values.
Closes#10870