code: public static <T1, T2, T3> TriConsumer<T1, T2, T3> monitor(TriConsumer<T1, T2, T3> consumer, AtomicLong calls) {
          return new TernaryMonitoringConsumer<T1, T2, T3>(consumer, calls);
      }
docs: Monitors calls to a ternary consumer.
  
  @param <T1> the consumer first parameter type
  @param <T2> the consumer second parameter type
  @param <T3> the consumer third parameter type
  @param consumer the consumer that will be monitored
  @param calls a value holder accumulating calls
  @return the proxied consumer