Change the return type of commit() to indicate the result

Change-Id: I4658a89fb0a496baa929579ab7800d00e842d685
diff --git a/core/api/src/main/java/org/onosproject/store/service/TransactionContext.java b/core/api/src/main/java/org/onosproject/store/service/TransactionContext.java
index 94942e2..ef97253 100644
--- a/core/api/src/main/java/org/onosproject/store/service/TransactionContext.java
+++ b/core/api/src/main/java/org/onosproject/store/service/TransactionContext.java
@@ -56,9 +56,9 @@
      * Commits a transaction that was previously started thereby making its changes permanent
      * and externally visible.
      *
-     * @throws TransactionException if transaction fails to commit
+     * @return true if this transaction succeeded, otherwise false.
      */
-    void commit();
+    boolean commit();
 
     /**
      * Aborts any changes made in this transaction context and discarding all locally cached updates.
diff --git a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContext.java b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContext.java
index b66f424..7388822 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContext.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/consistent/impl/DefaultTransactionContext.java
@@ -86,7 +86,7 @@
 
     @SuppressWarnings("unchecked")
     @Override
-    public void commit() {
+    public boolean commit() {
         // TODO: rework commit implementation to be more intuitive
         checkState(isOpen, TX_NOT_OPEN_ERROR);
         CommitResponse response = null;
@@ -95,10 +95,11 @@
             txMaps.values().forEach(m -> updates.addAll(m.prepareDatabaseUpdates()));
             Transaction transaction = new DefaultTransaction(transactionId, updates);
             response = Futures.getUnchecked(database.prepareAndCommit(transaction));
+            return response.success();
+        } catch (Exception e) {
+            abort();
+            return false;
         } finally {
-            if (response != null && !response.success()) {
-                abort();
-            }
             isOpen = false;
         }
     }