code: public void identify(
        final @Nullable String userId,
        final @Nullable Traits newTraits,
        final @Nullable Options options) {
      assertNotShutdown();
      if (isNullOrEmpty(userId) && isNullOrEmpty(newTraits)) {
        throw new IllegalArgumentException("Either userId or some traits must be provided.");
      }
  
      analyticsExecutor.submit(
          new Runnable() {
            @Override
            public void run() {
              Traits traits = traitsCache.get();
              if (!isNullOrEmpty(userId)) {
                traits.putUserId(userId);
              }
              if (!isNullOrEmpty(newTraits)) {
                traits.putAll(newTraits);
              }
  
              traitsCache.set(traits); // Save the new traits
              analyticsContext.setTraits(traits); // Update the references
  
              final Options finalOptions;
              if (options == null) {
                finalOptions = defaultOptions;
              } else {
                finalOptions = options;
              }
  
              IdentifyPayload.Builder builder =
                  new IdentifyPayload.Builder().traits(traitsCache.get());
              fillAndEnqueue(builder, finalOptions);
            }
          });
    }
docs: Identify lets you tie one of your users and their actions to a recognizable {@code userId}. It
  also lets you record {@code traits} about the user, like their email, name, account type, etc.
  
  <p>Traits and userId will be automatically cached and available on future sessions for the same
  user. To update a trait on the server, call identify with the same user id (or null). You can
  also use {@link #identify(Traits)} for this purpose.
  
  @param userId Unique identifier which you recognize a user by in your own database. If this is
  null or empty, any previous id we have (could be the anonymous id) will be used.
  @param newTraits Traits about the user.
  @param options To configure the call.
  @throws IllegalArgumentException if both {@code userId} and {@code newTraits} are not provided
  @see <a href="https://segment.com/docs/spec/identify/">Identify Documentation</a>