Ошибка с foreign key?
Ну ловите его и обрабатывайте как угодно. Через try...catch.
В развитие ответа Lander 
<?php
function saveEmail($contactId, $email){
	global $pdo;
	try {
		$stmt = $pdo->prepare("
			INSERT INTO emails(contact_id, email) 
			VALUES (:contact_id, :email)");
		$stmt-> bindValue(':contact_id', $contactId);
		$stmt-> bindValue(':email', $email);
		return $stmt-> execute();
	} catch (PDOException $Exception ) {
		print_r($Exception);
		return false;
	}
}

saveEmail(166, 'no@mail.com');

Test PHP & SQL code online