Вы можете использовать оптимистичное управление параллелизмом, которое включает добавление еще одного столбца к таблице (либо метки времени, либо эквивалентного ему, либо просто обычного типа int) и использование его при выполнении обновлений. Вот как вы можете использовать его (в случае, когда обычный int является «тегом версии»):
update BlogPost set PublishedOn = :publishedOn, VersionTag = VersionTag + 1
where ID = :id and VersionTag = :versionTag
А если предположить, что временная метка автоматически обновляется вашей СУБД, то, как это делается с временными метками:
update BlogPost set PublishedOn = :publishedOn
where ID = :id and Timestamp = :timestamp