CakePHP3のORMの「lastInsertId」の失敗時の戻り値について

PHP
CakePHP3

CakePHP3で、insert文のORMを使うとき、よく以下のような書き方をします。

$query = $this->query()
  ->insert([
    'カラム名1',
    'カラム名2',
    '...'
  ])
  ->values([
    'カラム名1' => '保存する値',
    'カラム名2' => '保存する値',
    '...' => '...',
  ]);
return $query->execute()->lastInsertId();

このとき、lastInsertId()は、DBにレコード追加成功時のプライマリーキー(PK)を返してくれます。
string型で。

しかし失敗したときはfalseを返します。

よくわからなくなるのでメモ。