O que está acontecendo é o seguinte..
O método de excluir o registro não é marcado para ser validado.. então o método validade nao será chamado.. (veja documentacao de validacao para saber como configurar um método para validacao)
O validate está sendo chamado com a açao listagem porque após o excluir o fluxo é redirecionado para a listagem... que é validada..
O que vc tem que fazer é:
1 - Jogar uma exceção no método excluir se a exclusão nao puder ser efetuada (cria uma excecao da sua app porque assim a apresentacao do erro será melhor)
OU
2 - Adicionar uma mensagem ao request (request.addMessage) com o tipo erro. E entao redirecionar o fluxo do excluir para nao excluir o registro e redirecionar para a listagem...