    (d/chain
     (session/execute
      session
-     (update-statement table key record opts))
+     (update-statement table key record opts)
+     (dissoc opts :only-if :if-exists :using :set-columns))
     first)))
 
 (defn combine-where

   (select-one session table key record-or-key-value {}))

  ([^Session session table key record-or-key-value opts]
   (d/chain (select session table key record-or-key-value (merge opts {:limit 1}))
            first)))

(defn insert-statement
  "returns a Hayt insert statement"

    {:keys [row-generator] :as opts}]
   (session/execute
    session
    (select-statement table key record-or-key-value
                      (dissoc opts :columns :where :only-if :order-by :limit))
    opts)))

(defn select-buffered
  "select records"
