SELECT ... FOR UPDATE is required to lock specific row in database in order to prevent other query thread to read or make changes to the same row. The lock is released once you update the data or commit it.
As a Spring lover, it's hard to find references about implementing the technique in Spring JDBC template. But finally I managed to use it.