This really is most likely a simple question to reply to, however i aren't seeing it pointed out within the documentation...

What goes on when place leads to a mistake? Is definitely an exception tossed? What kind? I am attempting to know very well what happens when attempting to place duplicate data inside a column that's unique.

And So I seem like I have to perform some checking first...

protected function _emailAlreadySubscribed($email)
{
    $select = $this->_model->select()->where('email = ?', $email);
    $rows = $table->fetchAll($select);
    if ($rows->count()) {
        return true;
    }
    return false;
}

Is the right way to check on?

No, checking to ascertain if the e-mail already is available is not a legitimate solution. Another person could place a replica value after your check before your INSERT. The only real option would be to lock the whole table.

Whenever you violate a distinctive type in Zend_Db_Table::insert(), a Zend_Db_Statement_Exception (or perhaps a subclass thereof) is tossed.

See also MySQL Insert: Test first?

I have been experimenting with Zend Framework to identify DB exceptions and take care of them. Regrettably, after you have caught the exception, the getCode() method always appears to come back '0', and so i wound up while using following code to check on for replicates:

try { 
	$model->insert($data);
	$added++; 
} catch (Zend_Db_Exception $e) {
	if(strstr($e->getMessage(), '1062 Duplicate')) {
		// duplicate
		$duplicates++;
	} else {
		// general error
		$errors++;
	}
}

Not probably the most elegant code I understand, therefore if anybody understands how to handle these exceptions better or comes with an exception code reference please nick in!

You most likely meant if ($rows->count()). Such as this:

protected function _emailAlreadySubscribed($email)
{
    $select = $this->_model->select()->where('email = ?', $email);
    $rows = $table->fetchAll($select);
    if ($rows->count()) {
        return true;
    }
    return false;
}

This is a valid approach. A much more elegant and generic approach would be to write a custom validator doing exactly the same factor. Generally you'll obtain emails on the form anyways:

class Project_Validate_DbUnique extends Zend_Validate_Abstract
{
    const NOT_UNIQUE = 'dbUniqueNotUnique';

    protected $_messageTemplates = array(
        self::NOT_UNIQUE => "'%column%' '%value' already exists"
    );

    /**
    * @var array
    */
    protected $_messageVariables = array(
        'column'  => '_column',
    );

    /**
     * The table where to check for unique value in column 
     *
     * @var Zend_Db_Table
     */
    protected $_dbTable = NULL;

    /**
     * The column name where to check for unique value 
     *
     * @var string
     */
    protected $_column = '';

    /**
     * The values of the primary key for this row if updating - to exclude the current row from the test 
     *
     * @var array
     */
    protected $_rowPrimaryKey = NULL;

    public function __construct(Zend_Db_Table_Abstract $table, $column, $rowPrimaryKey = NULL)
    {
        $this->_dbTable = $table;
        $this->_column = $column;
        $this->_rowPrimaryKey = $rowPrimaryKey;
    }
    public function isValid($value)
    {
        $this->_setValue($value);

        $select = $this->_dbTable->select();
        $select->where($this->_dbTable->getAdapter()->quoteInto($this->_column . ' = ?', $value));
        if (isset($this->_rowPrimaryKey))
        {
            $rowPrimaryKey = (array) $this->_rowPrimaryKey;
            $info = $this->_dbTable->info();

            foreach ($info['primary'] as $key => $column)
            {
                $select->where($this->_dbTable->getAdapter()->quoteInto($column . ' != ?', $rowPrimaryKey[$key - 1]));                
            }
        }

        $row = $this->_dbTable->fetchAll($select);
        if ($row->count())
        {
            $this->_error();
            return false;
        }

        return true;
    }
}