Duvida de como criar condição para executar métodos

Olá pessoal , sou iniciante em Java e estou tendo dificuldades para que , se o primeiro método der erro, ou seja, entrar no catch , não executar o segundo método. Ou se o primeiro método for executado com sucesso , ele executar os 2 em seguida:

`public class DaoCompra {

ConexaoBD conex = new ConexaoBD();
boolean decisao  ;

public void SalvarClienteMoto(modelCliente modCliente, modelMoto modMoto) {
    conex.conexao();
    try {

        PreparedStatement pst = conex.con.prepareStatement("insert into Compra(nome, modelo) values (?,?)");
        pst.setString(1, modCliente.getNome());
        pst.setString(2, modMoto.getModelo());
        pst.execute();

        JOptionPane.showMessageDialog(null, "Compra Realizada com sucesso!");

    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao inserir dados ao realizar compra!" + ex);
    }
    conex.desconecta();
}

public void Remover1Quant(modelMoto modMoto) {
    conex.conexao();

    try {
        PreparedStatement pst = conex.con.prepareStatement("UPDATE `produtos` SET `quantidade` = quantidade-1 WHERE modelo=?");
        pst.setString(1, modMoto.getModelo());
        pst.execute();
    } catch (SQLException ex) {
       JOptionPane.showMessageDialog(null, "Erro ao realizar compra, número de motos insuficiente para o modelo : " + modMoto.getModelo());
     decisao = true;
    }

    conex.desconecta();
    

}

public void Comprar(modelCliente modCliente, modelMoto modMoto) {
    if (decisao == true) {
        Remover1Quant(modMoto);
    } else {
        Remover1Quant(modMoto);
        SalvarClienteMoto(modCliente, modMoto);
    }

}

}`

Vocês podem me ajudar?

Como você está tratando as exceptions dentro dos métodos que executam as queries recomendo que você sempre coloque um return true/false. Caso entre no catch você põe um return false e no fim do método um return true, se não tiver nada depois do catch pode por o return true dentro do try mas antes do catch.

Assim você pode fazer algo como:

if (Remover1Quant(modMoto))
SalvarClienteMoto(modCliente, modMoto);

Geralmente quando usa try catch ele já faz o que você relatou que queria que ele fizesse, mas você pode ter certeza que se der erro ele saia usando o return; pois classe do tipo void pode fazer isso. Também tem como você descobrir sempre a linha que está dando erro fazendo debug. Uma forma mais simples de fazer isso é colocando acima de cada linha um System.out.println(“entrou01”); onde o 01 representa o número da linha, pois o debug mesmo que tem no netbeans faz você ter que ir parando de linha em linha e clicando sempre em next até chegar no erro.