preparedStatement e callebleStatement com CMT

Estou trabalhando em um sistema que utiliza CMT com spring ( org.springframework.orm.hibernate3.LocalSessionFactoryBean e propagation = REQUIRED ). Como é um sistema legado, mapeamos algumas partes que precisam de performance e a arquitetura de BD não colabora com o mapeamento ORM.

Partes críticas estamos substituindo por StoredProcedures. Minha dúvida é como devo proceder com os objetos oriundos da chamada de procedimentos transcionados atraves do CMT. Eu devo gerir o ciclo de vida ou como é CMT devo deixar a cargo do Spring neste caso ?

Conceito de codigo que eu encerro os recursos:

	Connection con = null;
	CallableStatement stCreate = null;
	CallableStatement stSearch = null;
try	
	con = getCurrentSession().connection();
	
	stCreate = con.prepareCall(" { call procedure_inclusao(?) } ");
	stSearch = con.prepareCall(" { call procedure_inclusao(?,?) } ");

	// setting parameters ..

	stCreate.execute();
	stSearch.execute();
	ResultSet rsSearch = (ResultSet) stSearch.getObject(2);
	
	//some logic ... 

} catch( Exception e ){
	log.error("Persist problem ..." );
	throw new DataAccessException("Persist problem", e);
} finally {
	// close all resources came from getCurrentSession CMT
	try{
		if(rsSearch!=null) rsSearch.close();
		if(stCreate!=null) stCreate.close();
		if(stSearch!=null) stSearch.close();
		if(con!=null) con.close();
	} catch (Exception e){
		log.error("error trying closing resources");
	}
}

Devo fazer isto mesmo ? estou procurando documentação mas até agora não encontrei nada referente…