         return prepareStatement(join(" ", sqlFragments), error: error)
     }
     
+    /// Inserts a table row. This is a helper for executing an INSERT INTO statement.
+    ///
+    /// :param: tableName   The name of the table to insert into.
+    /// :param: columns     The column names of the values to insert.
+    /// :param: values      The values to insert. The values in this array must be in the same order as the respective
+    ///                     `columns`.
+    /// :param: error       An error pointer.
+    ///
+    /// :returns:   The id of the inserted row. sqlite assigns each row a 64-bit ID, even if the primary key is not an
+    ///             INTEGER value. `nil` is returned when an error occurs.
+    ///
     public func insertInto(tableName:String, columns:[String], values:[Bindable?], error:NSErrorPointer) -> Int64? {
         var rowId : Int64?
         if let statement = prepareInsertInto(tableName, columns:columns, error: error) {

        return prepareStatement(join(" ", fragments), error: error)
    }
    
    public func update(tableName:   String,
                       columns:     [String],
                       values:      [Bindable?],

        }
        return rowId
    }

    /// Inserts a table row. This is a helper for executing an INSERT INTO statement.
    ///
    /// :param: tableName   The name of the table to insert into.
    /// :param: values      The values to insert, keyed by the column name.
    /// :param: error       An error pointer.
    ///
    /// :returns:   The id of the inserted row. sqlite assigns each row a 64-bit ID, even if the primary key is not an
    ///             INTEGER value. `nil` is returned when an error occurs.
    ///
    public func insertInto(tableName:String, values valuesDictionary:[String:Bindable?], error:NSErrorPointer) -> Int64? {
        var columns = [String]()
        var values = [Bindable?]()
