code: public final void updatePayload( final String payload )
              throws ChaiOperationException, ChaiUnavailableException
      {
          this.payload = payload;
  
          Set<String> currentValues = null;
          try
          {
              currentValues = objectEntry.readMultiStringAttribute( attr );
          }
          catch ( ChaiOperationException e )
          {
              //no current value
          }
  
          //If there is already a value there, just replace it
          if ( currentValues != null )
          {
              for ( final String currentValue : currentValues )
              {
                  final ConfigObjectRecord record = ConfigObjectRecord.parseString( currentValue );
                  if ( record.getRecordType().equals( recordType ) && record.getGuid1().equals( guid1 ) && record.getGuid2().equals( guid2 ) )
                  {
                      final String existingValue = record.toString();
                      final String newValue = this.toString();
                      objectEntry.replaceAttribute( attr, existingValue, newValue );
                      return;
                  }
              }
          }
  
          //If there isnt a value, append it to the end
          objectEntry.addAttribute( attr, this.toString() );
      }
docs: Updates the payload both in the directory and in the object instance.  When updating the directory
  this method will determine if the entry already exists (same record type and guid values) and replace it
  or it will add a new entry if it doesn't already exist.
  
  @param payload A string containing the payload to store.
  @throws ChaiOperationException   If there is an error during the operation
  @throws ChaiUnavailableException If the directory server(s) are unavailable