Duvidas sobre commit rollback

Tenho algumas dúvidas sobre o assunto, uma delas é como proceder, em que local colocar o commit rollback e se é só esse dois comandos . coloquei um exemplo abaixo se algem puder me ajudar e me informar onde e o que colocar

try{
			
	conn = getConnection();
			
			
	stmt = conn.prepareStatement("insert into endereco (rua,bairro) values(?,?)");
		
			
	stmt.setString(1, end.getRua());
	stmt.setString(2, end.getBairro());		
			
	stmt.execute();	

	stmt = conn.prepareStatement("insert into filial (razao,fantasia) values(?,?)");
	
        stmt.execute();	
			
	stmt.setString(1, filial.getRazao());
	stmt.setString(2, filial.getFantasia());	
			
			
					
	}catch(Exception e){
		e.printStackTrace();
	}
		
	finally{
		try {
			conn.close();
			conn = null;				
			stmt = null;
								
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}	

valeu

try{
			
	conn = getConnection();
			
			
	stmt = conn.prepareStatement("insert into endereco (rua,bairro) values(?,?)");
		
			
	stmt.setString(1, end.getRua());
	stmt.setString(2, end.getBairro());		
			
	stmt.execute();

	stmt.close(); // tenho duvidas se coloco isto aqui

	stmt = conn.prepareStatement("insert into filial (razao,fantasia) values(?,?)");
	
        stmt.execute();	
			
	stmt.setString(1, filial.getRazao());
	stmt.setString(2, filial.getFantasia());	
			
	conn.commit();
					
	}catch(Exception e){

                conn.rollback();

		e.printStackTrace();
	}
		
	finally{
		try {
			stmt.close();
			conn.close();
			conn = null;				
			stmt = null;
								
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}	

Assim? commit só ao final qdo deu tudo certo, rollback qdo houver erros.

Exatamente isso.

Commit, grava definitivamente os dados(qualquer alteração que você fez).
Rollback, descarta todas as informções.

segue…

commit

public void commit()
            throws SQLException

    Makes all changes made since the previous commit/rollback permanent and releases any database locks currently held by the Connection. This method should be used only when auto-commit mode has been disabled.

    Throws:
        SQLException - if a database access error occurs
    See Also:
        setAutoCommit(boolean)

rollback

public void rollback()
              throws SQLException

    Drops all changes made since the previous commit/rollback and releases any database locks currently held by this Connection. This method should be used only when auto- commit has been disabled.

    Throws:
        SQLException - if a database access error occurs
    See Also:
        setAutoCommit(boolean)

lembrando que para isso funcionainternface connection definir a propriedade autoCommit (setAutoCommit) como false.

Se não a cada alteração ele comita automaticamente dependendo do banco.

[]'s

Valew, me ajudou bastante

Obrigado