original_string: public function addUpdate(array $values): self
      {
          foreach ($values as $column => $value) {
              if (!is_string($column)) {
                  return $this->handleException(InvalidArgumentException::create(
                      'Argument $values indexes',
                      $column,
                      ['string']
                  ));
              }
  
              $value = $this->checkScalarOrNullValue('Argument $values['.$column.']', $value);
              $this->update[$column] = $value;
          }
  
          return $this;
      }
code: public function addUpdate(array $values): self
      {
          foreach ($values as $column => $value) {
              if (!is_string($column)) {
                  return $this->handleException(InvalidArgumentException::create(
                      'Argument $values indexes',
                      $column,
                      ['string']
                  ));
              }
  
              $value = $this->checkScalarOrNullValue('Argument $values['.$column.']', $value);
              $this->update[$column] = $value;
          }
  
          return $this;
      }
code_tokens: public function addUpdate ( array $ values ) : self { foreach ( $ values as $ column => $ value ) { if ( ! is_string ( $ column ) ) { return $ this -> handleException ( InvalidArgumentException :: create ( 'Argument $values indexes' , $ column , [ 'string' ] ) ) ; } $ value = $ this -> checkScalarOrNullValue ( 'Argument $values[' . $ column . ']' , $ value ) ; $ this -> update [ $ column ] = $ value ; } return $ this ; }
docstring: Adds values that should be updated
  
  @param mixed[]|\Closure[]|self[]|StatementInterface[] $values Fields to update. The indexes are the columns
  names, the values are the values.
  @return $this
  @throws InvalidArgumentException
  @throws InvalidReturnValueException
docstring_tokens: Adds values that should be updated