anchor.diff:      );
   
   update(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch) ->
  -    update_internal(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch, ignore).
  +    update_internal(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch, ignore_missing_metrics).
   
   -spec check_and_update(ctx(), collection_id(), ts_windows:timestamp(), update_range(), batch()) ->
       {ok | {error, term()}, batch()}.
   check_and_update(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch) ->
  -    update_internal(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch, fail_function).
  +    update_internal(Ctx, Id, NewTimestamp, MetricsToUpdateWithValues, Batch, fail_if_metric_is_missing).
   
   %%--------------------------------------------------------------------
   %% @private
  
positive.code: select_heads(TimeSeriesCollectionHeads, [TimeSeriesId | Tail], ErrorHandlingMode) ->
      Ans = select_heads(TimeSeriesCollectionHeads, Tail, ErrorHandlingMode),
      case maps:get(TimeSeriesId, TimeSeriesCollectionHeads, undefined) of
          undefined when ErrorHandlingMode =:= fail_function -> throw({error, time_series_not_found});
          undefined -> Ans;
          TimeSeries -> maps:put(TimeSeriesId, TimeSeries, Ans)
      end;
  
negative.code:         end
      end, [], ConfigMapExtension),
  
      SelectedHeads = select_heads(TimeSeriesCollectionHeads, MetricsToDelete, ignore_missing_metrics),
      delete_time_series(maps:to_list(SelectedHeads), false, PersistenceCtx).
  
  
  