Это предотвращает грязное чтение, поскольку T1 имеет блокировку строки, поэтому T2 не может прочитать строку «еще не зафиксировано», которую можно откатить позже.
Проблема, которую Read Committed пытается решить:
T1 создает транзакцию и пишет что-то
Т2 читает что-то
T1 откат транзакции
теперь у T2 есть данные, которых на самом деле никогда не было.
В зависимости от структуры БД возможны две «хорошие» возможности:
T1 создает транзакцию и что-то пишет
T2 ожидает, пока T1 завершит транзакцию
или
T2 считывает «снимок» того, как была БД, ДО того, как T1 начал транзакцию (она называется «Чтение совершено с использованием контроля версий строк»)
(по умолчанию на MSSQL - первый вариант)
Здесь, например, есть сравнение различных уровней изоляции: http://msdn.microsoft.com/en-us/library/ms345124(SQL.90).aspx (см. Раздел «Уровни изоляции, предлагаемые в SQL Server 2005)»