diff --git a/theories/bi/big_op.v b/theories/bi/big_op.v
index 9322476689146241880a2293be8749fd39e42126..62013e901ec1b32a3b6a0fc33e4bcb9aedb54adb 100644
--- a/theories/bi/big_op.v
+++ b/theories/bi/big_op.v
@@ -568,6 +568,19 @@ Section gmap.
     ([∗ map] k↦y ∈ m, Φ k y) ⊣⊢ Φ i x ∗ [∗ map] k↦y ∈ delete i m, Φ k y.
   Proof. apply big_opM_delete. Qed.
 
+  Lemma big_sepM_insert_2 Φ m i x :
+    TCOr (∀ x, Affine (Φ i x)) (Absorbing (Φ i x)) →
+    Φ i x -∗ ([∗ map] k↦y ∈ m, Φ k y) -∗ [∗ map] k↦y ∈ <[i:=x]> m, Φ k y.
+  Proof.
+    intros Ha. apply wand_intro_r. destruct (m !! i) as [y|] eqn:Hi; last first.
+    { by rewrite -big_sepM_insert. }
+    assert (TCOr (Affine (Φ i y)) (Absorbing (Φ i x))).
+    { destruct Ha; try apply _. }
+    rewrite big_sepM_delete // assoc.
+    rewrite (sep_elim_l (Φ i x)) -big_sepM_insert ?lookup_delete //.
+    by rewrite insert_delete.
+  Qed.
+
   Lemma big_sepM_lookup_acc Φ m i x :
     m !! i = Some x →
     ([∗ map] k↦y ∈ m, Φ k y) ⊢ Φ i x ∗ (Φ i x -∗ ([∗ map] k↦y ∈ m, Φ k y)).