diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# hpqtypes-1.14.0.0 (2025-12-10)
+* Make `begin`, `commit` and `rollback` do nothing instead of throwing an error
+  if the on demand connection acquisition mode is active.
+
 # hpqtypes-1.13.0.1 (2025-11-27)
 * Fix a bug in `initConnectionState` and `finalizeConnectionState` that could
   lead to leaking connections.
diff --git a/hpqtypes.cabal b/hpqtypes.cabal
--- a/hpqtypes.cabal
+++ b/hpqtypes.cabal
@@ -1,7 +1,7 @@
 cabal-version:       3.0
 build-type:          Simple
 name:                hpqtypes
-version:             1.13.0.1
+version:             1.14.0.0
 synopsis:            Haskell bindings to libpqtypes
 
 description:         Efficient and easy-to-use bindings to (slightly modified)
diff --git a/src/Database/PostgreSQL/PQTypes/Transaction.hs b/src/Database/PostgreSQL/PQTypes/Transaction.hs
--- a/src/Database/PostgreSQL/PQTypes/Transaction.hs
+++ b/src/Database/PostgreSQL/PQTypes/Transaction.hs
@@ -56,8 +56,7 @@
 begin :: (HasCallStack, MonadDB m, MonadMask m) => m ()
 begin = do
   getConnectionAcquisitionMode >>= \case
-    AcquireOnDemand -> do
-      throwDB $ HPQTypesError "Can't begin a transaction in OnDemand mode"
+    AcquireOnDemand -> pure ()
     AcquireAndHold isolationLevel permissions -> uninterruptibleMask_ $ do
       runSQL_ $
         smconcat
@@ -77,8 +76,7 @@
 commit :: (HasCallStack, MonadDB m, MonadMask m) => m ()
 commit = do
   getConnectionAcquisitionMode >>= \case
-    AcquireOnDemand -> do
-      throwDB $ HPQTypesError "Can't commit a transaction in OnDemand mode"
+    AcquireOnDemand -> pure ()
     AcquireAndHold {} -> uninterruptibleMask_ $ do
       runSQL_ "COMMIT"
       begin
@@ -87,8 +85,7 @@
 rollback :: (HasCallStack, MonadDB m, MonadMask m) => m ()
 rollback = do
   getConnectionAcquisitionMode >>= \case
-    AcquireOnDemand -> do
-      throwDB $ HPQTypesError "Can't rollback a transaction in OnDemand mode"
+    AcquireOnDemand -> pure ()
     AcquireAndHold {} -> uninterruptibleMask_ $ do
       runSQL_ "ROLLBACK"
       begin
