[Primefaces] Listener para abrir um dialog de acordo com o estado de retorno do método

Olá galera, tenho uma Entidade no meu BD chamada Prefeito, este prefeito tem uma outra entidade Email, este email é compartilhado entre outras entidades, certo?
Pronto, na minha view, fiz um dialog que recebe os dados para adicionar um novo Prefeito, só que quando tento adicionar um prefeito com um email que já está associado por outra entidade ele dá erro, até aqui tudo bem também. O que eu quero é que o meu ManagedBeans ao tratar essa informação sinalize que aconteceu isso para a view e que a view ao perceber isso abra um no dialog perguntando se ao invés de tentar criar uma nova entidade de mesmo nome da tabela Email associe com a entidade já existente. É possível isso?

Pensei em Listeners aqui mas não tenho certeza de que funcionará, pensei mais ou menos assim:
No managedbeans:

//terminando a execução do método salvar...
...
salvar(){
try {
// tenta salvar...
} catch(Exception e) {
...
} finally {
this.estado = "EmailJaExistente";
}

Na view pensei em um <p:Ajax> dentro de um <p:commandButton> e depois de completado o método salvar faria alguma coisa pra verificar o sinal do MB e abrir o dialog, mas tentei aqui e não sei como seria isso… alguém tem uma idéia de como faço isso???