code: public String[] addAttribute(String key, String value) {
          if (key.startsWith("com.ibm.wsspi.security") || key.startsWith("com.ibm.websphere.security")) {
              java.lang.SecurityManager sm = System.getSecurityManager();
              if (sm != null) {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                      Tr.debug(tc, "Performing Java 2 Security Permission Check ...");
                      Tr.debug(tc, "Expecting : " + UPDATE_TOKEN.toString());
                  }
                  sm.checkPermission(UPDATE_TOKEN);
              }
          }
  
          if (!isReadOnly && token != null) {
              // change_counter is used by PropagationToken to determine uniqueness
              change_counter++;
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(tc, "Setting attribute with key: " + key + ", value: " + value);
              return token.addAttribute(key, value);
          } else
              return null;
      }
docs: Sets the attribute name/value pair. Returns the previous value set for key,
  or null if not previously set.
  
  @param String key
  @param String value
  @returns String[];