Dúvida DAO Genérica, Hibernate, método "T findById(ID id, boolean lock)" e buildLockRequest()

Estou construindo uma DAO genérica para o Hibernate baseada no artigo disponível em: http://community.jboss.org/wiki/GenericDataAccessObjects

Porém estou com dúvidas em um dos métodos!

O que faz esse método mais abaixo?
Qual a utilidade desse lock?
Outra coisa, esse método load está deprecated, eles sugerem utilizar o buildLockRequest(), como que eu utilizo esse método mais moderno?

Muito obrigado!

@SuppressWarnings("unchecked")
public T findById(ID id, boolean lock) {
   
   T entity;
   
   if (lock) {

          // TODO:Trocar esses deprecateds!
          entity = (T) getSession().load(getPersistentClass(), id, LockMode.UPGRADE);

   } else {

          entity = (T) getSession().load(getPersistentClass(), id);
   }

   return entity;

}

vc pode trocar o load pelo get()

esse ‘lock’ é utilizado quando você precisa ler um registro com a intenção de atualiza-lo.
desta forma, você impede que outro processo tente alterar o mesmo registro, em caso de concorrencia.

Essa linha:

ficaria assim:

Não é sobre a sua dúvida porem caso interesse.
http://code.google.com/p/hibernate-generic-dao/
Um framework implementado o DAO generic, estou usando até o momento estou gostando.