   @doc """
   Inserts a record to the database with a related version insertion in one transaction
   """
-  def insert(changeset, options \\ [origin: nil, meta: nil, originator: nil]) do
+  def insert(changeset, options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]) do
     transaction_order = case @client.strict_mode() do
       true ->
         Multi.new

  @doc """
  Deletes a record from the database with a related version insertion in one transaction
  """
  def delete(struct, options \\ [origin: nil, meta: nil, originator: nil]) do
    transaction = Multi.new
      |> Multi.delete(:model, struct)
      |> Multi.run(:version, fn %{} ->

  @doc """
  Same as update/2 but returns only the model struct or raises if the changeset is invalid.
  """
  def update!(changeset, options \\ [origin: nil, meta: nil, originator: nil, prefix: nil]) do
    @repo.transaction(fn ->
      case @client.strict_mode() do
        true ->
