docs: public void bindUpdate(PreparedStatement stmt, ClassDescriptor cld, Object obj) throws java.sql.SQLException
      {
          if (cld.getUpdateProcedure() != null)
          {
              this.bindProcedure(stmt, cld, obj, cld.getUpdateProcedure());
          }
          else
          {
              int index = 1;
              ValueContainer[] values, valuesSnapshot;
              // first take a snapshot of current locking values
              valuesSnapshot = cld.getCurrentLockingValues(obj);
              cld.updateLockingValues(obj); // BRJ
              values = getNonKeyValues(m_broker, cld, obj);
  
              // parameters for SET-clause
              for (int i = 0; i < values.length; i++)
              {
                  setObjectForStatement(stmt, index, values[i].getValue(), values[i].getJdbcType().getType());
                  index++;
              }
              // parameters for WHERE-clause pk
              values = getKeyValues(m_broker, cld, obj);
              for (int i = 0; i < values.length; i++)
              {
                  setObjectForStatement(stmt, index, values[i].getValue(), values[i].getJdbcType().getType());
                  index++;
              }
              // parameters for WHERE-clause locking
              // take old locking values
              values = valuesSnapshot;
              for (int i = 0; i < values.length; i++)
              {
                  setObjectForStatement(stmt, index, values[i].getValue(), values[i].getJdbcType().getType());
                  index++;
              }
          }
      }