Use defer to rollback.
diff --git a/data.go b/data.go
index 8eefe11..2ba19c4 100644
--- a/data.go
+++ b/data.go
@@ -54,6 +54,7 @@
 		log.Errorf("initDB(): Unable to get DB tx err: {%v}", err)
 		return err
 	}
+	defer rollbackTxn(tx)
 	_, err = tx.Exec(`
 	CREATE TABLE IF NOT EXISTS APID (
 	    instance_id text,
@@ -63,13 +64,11 @@
 	);
 	`)
 	if err != nil {
-		rollbackTxn(tx)
 		log.Errorf("initDB(): Unable to tx exec err: {%v}", err)
 		return err
 	}
 	err = tx.Commit()
 	if err != nil {
-		rollbackTxn(tx)
 		log.Errorf("initDB(): tx commit err: {%v}", err)
 		return err
 	}
@@ -443,17 +442,15 @@
 		log.Errorf("getApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
 		return err
 	}
-
+	defer rollbackTxn(tx)
 	_, err = tx.Exec("UPDATE EDGEX_APID_CLUSTER SET last_sequence=?;", lastSequence)
 	if err != nil {
 		log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
-		rollbackTxn(tx)
 		return err
 	}
 	err = tx.Commit()
 	if err != nil {
 		log.Errorf("UPDATE EDGEX_APID_CLUSTER Tx Commit err : %v", err)
-		rollbackTxn(tx)
 		return err
 	}
 	log.Debugf("UPDATE EDGEX_APID_CLUSTER Success: %s", lastSequence)
@@ -477,13 +474,12 @@
 		log.Errorf("getApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
 		return
 	}
-
+	defer rollbackTxn(tx)
 	err = tx.QueryRow("SELECT instance_id, apid_cluster_id, last_snapshot_info FROM APID LIMIT 1").
 		Scan(&info.InstanceID, &savedClusterId, &info.LastSnapshot)
 	if err != nil {
 		if err != sql.ErrNoRows {
 			log.Errorf("Unable to retrieve apidInstanceInfo: %v", err)
-			tx.Rollback()
 			return
 		} else {
 			// first start - no row, generate a UUID and store it
@@ -505,13 +501,8 @@
 			info.InstanceID, info.ClusterID, "")
 		info.LastSnapshot = ""
 	}
-	if err != nil {
-		err = tx.Commit()
-		if err != nil {
-			rollbackTxn(tx)
-		}
-	} else {
-		rollbackTxn(tx)
+	if err == nil {
+		tx.Commit()
 	}
 	return
 }
@@ -528,6 +519,7 @@
 		log.Errorf("updateApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
 		return err
 	}
+	defer rollbackTxn(tx)
 	rows, err := tx.Exec(`
 		REPLACE
 		INTO APID (instance_id, apid_cluster_id, last_snapshot_info)
@@ -535,20 +527,13 @@
 		apidInfo.InstanceID, apidInfo.ClusterID, apidInfo.LastSnapshot)
 	if err != nil {
 		log.Errorf("updateApidInstanceInfo: Tx Exec Err: {%v}", err)
-		rollbackTxn(tx)
 		return err
 	}
 	n, err := rows.RowsAffected()
 	if err == nil && n == 0 {
 		err = errors.New("no rows affected")
-		rollbackTxn(tx)
 	} else if err == nil {
-		err = tx.Commit()
-		if err != nil {
-			rollbackTxn(tx)
-		}
-	} else {
-		rollbackTxn(tx)
+		tx.Commit()
 	}
 
 	return err