code: static <V> void execute(Tenant tenant, Consumer<V> consumer, V value) {
          startTenantFlow();
          try {
              getThreadLocalInstance().setTenant(tenant);
              consumer.accept(value);
          } finally {
              endTenantFlow();
          }
      }
docs: This method will execute {@code consumer.accept(T value)} method on behalf of the specified tenant.
  
  @param tenant   the tenant
  @param consumer an instance on which {@code accept(T value)} method will be executed
  @param value    the input argument for consumer
  @param <V>      the type of the input to the consumer operation