This is my first time using commit and rollback. I just need to know if this is a proper execution of the functions for this particular situation:
<?php
  include("../include/sessions.php");
  if(isset($_POST['addcriteria'])) {
    $value = $_POST['addcriteria'];
    $addname = isset($value['addname ']) ? $value['addname '] : '';
    $addemail = isset($value['addemail']) ? $value['addemail'] : '';
    $addcomment = isset($value['addcomment']) ? $value['addcomment'] : '';
    try {
      $dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $dbc->beginTransaction();
      $selectCheck = $dbc->prepare("SELECT * FROM mainTable WHERE `name` = :newname AND `email` = :newemail");
      $selectCheck->bindParam(':newname', $addname);
      $selectCheck->bindParam(':newemail', $addemail);
      if($selectCheck->execute()) {
        $count = $selectCheck->rowCount();
        if($count > 0) {
          echo "Error: Account already exists";
        } else {
          $select = $dbc->prepare("SELECT MAX(uid)+1 AS 'NEWUID' FROM mainTable");
          if($select->execute()) {
            $row = $select->fetch(PDO::FETCH_ASSOC);
            $addnewuid = $row['NEWUID'];
            $insert = $dbc->prepare("INSERT INTO mainTable (`name`,`email`) VALUES (:addname,:addemail)");
            $insert->bindParam(':addname', $addname);
            $insert->bindParam(':addemail', $addemail);
            $insert->execute();
            $insertComment = $dbc->prepare("INSERT INTO comments (`name`,`comments`) VALUES (:name, :comment)");
            $insertComment->bindParam(':name', $addname);
            $insertComment->bindParam(':comment', $addcomment);
            $insertComment->execute();
          }
        }
      } else {
        echo "error: There was an unexpected error.";
      }
      $dbc->commit();
      $dbc = null;
      
    } catch(PDOException $e) {
        echo "error: " . $e->getMessage();
        $dbc->rollBack();
    }
  }
?>
Does this appear as proper use of the commit and rollback functions?
What, if anything, can I do to improve this code?
Am I missing anything?