O tempo limite precisa ser definido antes que a transação seja iniciada.
ao invés de
tran = dbSession.beginTransaction();
tran.setTimeout(10);// 10 seconds
tentar
tran = dbSession.getTransaction();
tran.setTimeout(10);
tran.begin();
tran = dbSession.beginTransaction();
tran.setTimeout(10);// 10 seconds
tran = dbSession.getTransaction();
tran.setTimeout(10);
tran.begin();