Почему незафиксированная транзакция может изменять данные?
Читайте далее. Это, судя по всему, прелюдия к описанию уровней изоляции транзакций.
READ UNCOMMITTED - позволяет СУБД показывать данные, которые ещё не были зафиксированы. Это не значит, что именно так на этом уровне изоляции должна так себя вести СУБД, но поведение допускается стандартом для этого уровня изоляции. Например, в упомянутом postgresql на шаге t4 900 вы не сможете получить никогда, даже на read uncommitted.
Далеко не всегда важны "чистые" данные, бывает, что важнее скорость.
Вот два примера:
Например, какая вам принципиальная разница - будет на 1 лайк больше или нет?
С другой стороны, при банковских операциях мелочи важны.Чем "чище" тем выше нагрузка на СУБД.
Поэтому иногда ОСОЗНАНО снижают "чистоту".