anchor.diff:  -spec tlog_add_on_nr(tx_tlog:tlog_entry(), client_key(),
                         client_value()) ->
                                {tx_tlog:tlog_entry(), result_entry_write()}.
  -tlog_add_on_nr(Entry, _Key, X)
  -  when (not erlang:is_number(X)) ->
  +tlog_add_on_nr(Entry, _Key, X) when (not erlang:is_number(X)) ->
       Error = {fail, not_a_number},
  -    NewTlogEntry = case tx_tlog:get_entry_status(Entry) of
  -                       {fail, _} -> Entry;
  -                       not_found -> tx_tlog:set_entry_status(Entry, {fail, not_found});
  -                       _ -> tx_tlog:set_entry_status(Entry, Error)
  -                   end,
  -    {NewTlogEntry, Error};
  +    {update_tlog_entry_2phase_op(Entry, Error), Error};
   tlog_add_on_nr(Entry, Key, X) ->
       {_, Res0} = tlog_read(Entry, Key),
       case Res0 of
  
positive.code:             tlog_write(Entry, Key, encode_value(NewValue2));
          {ok, _} -> %% value is not a list
              Error = {fail, not_a_list},
              NewTlogEntry = case tx_tlog:get_entry_status(Entry) of
                                 {fail, _} -> Entry;
                                 not_found -> tx_tlog:set_entry_status(Entry, {fail, not_found});
                                 _ -> tx_tlog:set_entry_status(Entry, Error)
                             end,
              {NewTlogEntry, Error};
          X when erlang:is_tuple(X) -> %% other previous error
              {Entry, X}
      end.
  
negative.code:       (not erlang:is_list(ToDel)) ->
      %% input type error
      Error = {fail, not_a_list},
      {update_tlog_entry_2phase_op(Entry, Error), Error};
  tlog_add_del_on_list(Entry, Key, ToAdd, ToDel) ->
      {_, Res0} = tlog_read(Entry, Key),
      case Res0 of
  