Não permitir inserção através de um evento

Olá,
Tenho uma aplicação baseada em uma tabela (chamada dbo.pessoa), porém faço um select no before insert:

$sql_existePessoa = “SELECT id FROM dbo.pessoa WHERE cpf = ‘{cpf}’”;
sc_select( pessoa, $sql_existePessoa);

if({pessoa} == false){
sc_error_message(“Erro ao acessar o banco de dados”.$sql_existePessoa);
}
elseif(!{pessoa}->EOF){
$idPessoa = {pessoa}->fields[0];

$sql_existeResponsavel = "SELECT id FROM dbo.responsavel WHERE matricula = '{matricula}' AND idPessoa = $idPessoa";
sc_select(responsavel, $sql_existeResponsavel);
if({responsavel} == false){
	sc_error_message("Erro ao acessar o banco de dados".$sql_existePessoa);
}
elseif(!{responsavel}->EOF){
	sc_error_message("Este Responsável já está cadastrado!");
}
    else{
           Quero que insira somente na tabela de responsável e não insira em pessoa, pois já existe o cadastro desta pessoa!
    }

}

Sendo que uma pessoa pode ter varios cadastros na tabela de responsavel desde que seja com matriculas diferentes.

Algue poderia me dar esta luz!

Crie um Master-Detail.

Não tenho criar um master-detalhe porque este cadastro é feito na mesma tela.
Eu tenho campos que são salvos em outra tabela, ou seja, na tabela responsável, mais os campos estão no formulário que tem como base a tabela pessoa.
Eu quero ter uma pessoa só cadastrada, mais posso cadastrar mais de um responsável com a mesma pessoa.