diff --git a/app/code/Magento/Bundle/Model/ResourceModel/Option.php b/app/code/Magento/Bundle/Model/ResourceModel/Option.php
index 2ad7e57f522d664dd79c621ec188c354688a008f..46fd8b910f6f1e1b57d36ea4959361145b233bca 100644
--- a/app/code/Magento/Bundle/Model/ResourceModel/Option.php
+++ b/app/code/Magento/Bundle/Model/ResourceModel/Option.php
@@ -81,31 +81,39 @@ class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
     {
         parent::_afterSave($object);
 
-        $condition = [
+        $conditions = [
             'option_id = ?' => $object->getId(),
             'store_id = ? OR store_id = 0' => $object->getStoreId(),
             'parent_product_id = ?' => $object->getParentId()
         ];
 
         $connection = $this->getConnection();
-        $connection->delete($this->getTable('catalog_product_bundle_option_value'), $condition);
 
-        $data = new \Magento\Framework\DataObject();
-        $data->setOptionId($object->getId())
-            ->setStoreId($object->getStoreId())
-            ->setParentProductId($object->getParentId())
-            ->setTitle($object->getTitle());
-
-        $connection->insert($this->getTable('catalog_product_bundle_option_value'), $data->getData());
-
-        /**
-         * also saving default value if this store view scope
-         */
+        if ($this->isOptionPresent($conditions)) {
+            $connection->update(
+                $this->getTable('catalog_product_bundle_option_value'),
+                [
+                    'title' => $object->getTitle()
+                ],
+                $conditions
+            );
+        } else {
+            $data = new \Magento\Framework\DataObject();
+            $data->setOptionId($object->getId())
+                ->setStoreId($object->getStoreId())
+                ->setParentProductId($object->getParentId())
+                ->setTitle($object->getTitle());
 
-        if ($object->getStoreId()) {
-            $data->setStoreId(0);
-            $data->setTitle($object->getDefaultTitle());
             $connection->insert($this->getTable('catalog_product_bundle_option_value'), $data->getData());
+
+            /**
+             * also saving default value if this store view scope
+             */
+            if ($object->getStoreId()) {
+                $data->setStoreId(0);
+                $data->setTitle($object->getDefaultTitle());
+                $connection->insert($this->getTable('catalog_product_bundle_option_value'), $data->getData());
+            }
         }
 
         return $this;
@@ -210,4 +218,26 @@ class Option extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
 
         return $this;
     }
+
+    /**
+     * Is Bundle option present in the database
+     *
+     * @param array $conditions
+     *
+     * @return bool
+     */
+    private function isOptionPresent($conditions)
+    {
+        $connection = $this->getConnection();
+
+        $select = $connection->select()->from($this->getTable('catalog_product_bundle_option_value'));
+        foreach ($conditions as $condition => $conditionValue) {
+            $select->where($condition, $conditionValue);
+        }
+        $select->limit(1);
+
+        $rowSelect = $connection->fetchRow($select);
+
+        return (is_array($rowSelect) && !empty($rowSelect));
+    }
 }