JDBC Dao implementations introduced ReentrantLock to prevent concurrent updates now, but it only works for single instance, it doesn't work for remote chunked/partitioned step, and it is inefficient because it doesn't lock per entity, we should rely on optimistic locking only.
See #4795 (comment)