         referenceRow = Row(dictionary: storedDatabaseDictionary)
     }
     
-    /// Throws an error if the model has no table name, or no primary key.
-    /// See https://www.sqlite.org/lang_update.html
+    /**
+    Executes an UPDATE statement to update the row model.
+    
+    - parameter db: A Database.
+    */
     public func update(db: Database, conflictResolution: ConflictResolution? = nil) throws {
         let version = Version(self)
         try version.update(db, conflictResolution: conflictResolution)


// MARK: - RowModel

public class RowModel {
    
    /// A primary key
    public enum PrimaryKey {
        /// A primary key managed by SQLite.
        case RowID(String)
        

        referenceRow = Row(dictionary: storedDatabaseDictionary)
    }
    
    /**
    Updates if row model has a primary key with at least one non-nil value, or
    inserts otherwise.
    
    - parameter db: A Database.
    */
    final public func save(db: Database, conflictResolution: ConflictResolution? = nil) throws {
        let insertionResult = try Version(self).save(db, conflictResolution: conflictResolution)
        if let (rowIDColumn, insertedRowID) = insertionResult {
