PDO::ERRMODE_EXCEPTIONのとき、

try {
    $stmt = $pdo->prepare("SELECT * FROM po");
    $result= $stmt->execute();
    if (!$result) {
        throw new Exception ("execute_false");
    }
} catch (Exception $e) {
    var_dump($e->getMessage());
}

とすると、
Base table or view not found: 1146 Table 'hoge_table.po' doesn't exist
となり、execute()falseではなく例外を投げているような気がします。

しかし、ドキュメントを見ても、executeが例外を出すという記述はありません。たとえばprepareのところには例外を吐くと書かれています。

これについて、executeが例外を出したのではなく、prepareの例外が
executeの実行により起こり、executeが例外を出したように見える、という解釈で正しいのでしょうか?

また、execute自身がfalseを返す失敗とはどのようなものなのでしょうか。

よろしくお願いします。