Multi Thread com hibernate e Trigger postgres não funciona corretamente

Olá pessoal bacana do GUJ. Estou lançando um problema que deve interessar a todos e pode ser que alguém já tenha passado por isso.

Estou executando o JMeter para rodar uma servlet que deveria fazer o seguinte.

Atualizar um contator em um tabela (Campanha)
inserir linhas e outra tabela (Control_Flow)

As Tabelas

CREATE TABLE campanha
(
  id_campanha bigserial NOT NULL,
  insertion_reach bigint,
  CONSTRAINT campanha_pkey PRIMARY KEY (id_campanha)
  
)
WITH (
  OIDS=FALSE
);
ALTER TABLE campanha
  OWNER TO postgres;



CREATE TABLE control_flow
(
  id_control bigserial NOT NULL,
  callid character varying(255),
  id_campanha bigint,
  id_cdr bigint,
  msisdn character varying(255),
  operation_date timestamp without time zone,
  CONSTRAINT control_flow_pkey PRIMARY KEY (id_control)
)
WITH (
  OIDS=FALSE
);

ALTER TABLE control_flow
  OWNER TO postgres;



CREATE OR REPLACE FUNCTION UP_reach() RETURNS trigger AS $UP_reach$
    BEGIN
        update campanha set insertion_reach=insertion_reach+1 where id_campanha=new.id_campanha;
         RETURN new;
    END;
$UP_reach$ LANGUAGE plpgsql;




-- Trigger: up_reach on control_flow

-- DROP TRIGGER up_reach ON control_flow;

CREATE TRIGGER up_reach
  AFTER INSERT
  ON control_flow
  FOR EACH ROW
  EXECUTE PROCEDURE up_reach();

O que acontece vejam só.

Eu executo o JMetter com 10 threads , 1 segundo e 1 iteração para uma servlet que aciona o hibernate que insere na tabela contro_flow.

Nessa Contro_Flow conforme o que executei no JMetter são inseridas 10 linhas, perfeito , mas na tabela campanha não reflete o mesmo numero de inserções feitas.

Debugando o java verifiquei que realmente roda o comando de inserção do control_flow vejam o retorno no log:
Informações: Hibernate: insert into control_flow (callid, id_campanha, id_cdr, msisdn, operation_date) values (?, ?, ?, ?, ?)

Na tabela campanha isso não aconteceu ficou com o contador diferente como se não tivesse executado a trigger.

Quando eu mudo a forma de executar o Jmeter colocando thread =1 e iteração = 10 , ai funciona perfeitamente. Como pode?

Eu ja tentei fazer o update pelo java e o resultado é o mesmo. O problema esta no multithread.

Alguém poderia ajudar?

Muito obrigado

Olha só o que eu descobri

esse comando em multithread campanha set insertion_reach=insertion_reach+1 where id_campanha=new.id_campanha; não funciona .

Agora gostaria de saber porque?