Note that when updateTupleWithOptimisticLock will be used for dirty / all, we will need to deal with dotted column names too.