code: def create(cv)
        if cv.public_id.nil? then
          raise ArgumentError.new("Controlled value create is missing a public id")
        end
        if cv.value.nil? then
          raise ArgumentError.new("Controlled value create is missing a value")
        end
        cv.identifier ||= next_id
        logger.debug { "Creating controlled value #{cv} in the database..." }
        @executor.transact(INSERT_STMT, cv.identifier, cv.parent_identifier, cv.public_id, cv.value)
        logger.debug { "Controlled value #{cv.public_id} #{cv.value} created with identifier #{cv.identifier}" }
        @pid_value_cv_hash[cv.public_id][cv.value] = cv
      end
docs: Creates a new controlled value record in the database from the given ControlledValue cv.
   The default identifier is the next identifier in the permissible values table.
  
   @param [ControlledValue] cv the controlled value to create
   @return [ControlledValue] the created CV