WriteTimeStamp(Q) and ReadTimeStamp(Q), both store the largest time stamp of any transaction that executed successfully.
Lets say we have two transactions, T1 and T2 such that TS(T1) < TS(T2). Assume that T2 has already done W(Q), then WriteTimeStamp(Q) == TS(T2). Now if T1 wants to do a W(Q) operation after T2, I can safely ignore this write operation.
Even if I allow the T1 to do W(Q), the WriteTimeStamp(Q) would still store T2’s time stamp (largest time stamp). And for any other transaction T3 that is trying to do a R(Q), the WriteTimeStamp(Q) would still point to the timestamp of T2 and not that of T1.
Any other transaction that comes after T1 and T2, would read the change made by T2 and not the change made by T1.