anchor.diff:  
   input_transforms(Data, #prepared_statement{input_types=Types}, _State) ->
       [ transform(T, E) || {T,E} <- lists:zip(Types, Data) ].
  +
  +commit(Cn, Result, State) ->
  +    case pgsql:squery(Cn, "COMMIT") of
  +        {ok, [], []} ->
  +            {{ok, Result}, State};
  +        Error when is_tuple(Error) ->
  +            {Error, State}
  +    end.
  +
  +rollback(Cn, Error, State) ->
  +    case pgsql:squery(Cn, "ROLLBACK") of
  +        {ok, [], []} ->
  +            {Error, State};
  +        Error1 ->
  +            {Error, State}
  +    end.
  
positive.code:         try
              case pgsql:execute(Cn, Stmt) of
                  {ok, Count} ->
                      ?COMMIT(Cn),
                      {{ok, Count}, State};
                  Result ->
                      ?ROLLBACK(Cn),
                      {{error, Result}, State}
              end
          catch
              _:X ->
                  ?ROLLBACK(Cn),
                  {error, X}
          end,
      Rv.
  
  
negative.code: -behaviour(sqerl_client).
  
  -include_lib("epgsql/include/pgsql.hrl").
  
  %% API
  -export([start_link/1]).
  