CypherのDELETEがうまく動作しない?

ぬこは激怒した。

さっきの続き。
まあ、さっきの問題は些か汚い方法だが、not()で反転させれば所定のノード群を得ることはできる。

neo4j-sh (0)$ START n=node(*) WHERE not(n.delete_flag? = false) RETURN n;
==> +-----------------------------------------------------------------------+
==> | n                                                                     |
==> +-----------------------------------------------------------------------+
==> | Node[4]{type:"doc",name:"テーブル定義書",delete_flag:true}                   |
==> | Node[14]{type:"simple",name:"テーブル名",delete_flag:true}                 |
==> | Node[15]{type:"value",name:"string",value:"table1",delete_flag:true}  |
==> | Node[16]{type:"complex",name:"カラムlist",delete_flag:true}              |
==> | Node[17]{type:"complex",name:"カラム",delete_flag:true}                  |
==> | Node[18]{type:"simple",name:"カラム名",delete_flag:true}                  |
==> | Node[19]{type:"value",name:"カラム名",value:"column1",delete_flag:true}   |
==> | Node[20]{type:"simple",name:"データ型",delete_flag:true}                  |
==> | Node[21]{type:"value",name:"string",value:"integer",delete_flag:true} |
==> | Node[22]{type:"complex",name:"カラム",delete_flag:true}                  |
==> | Node[23]{type:"simple",name:"カラム名",delete_flag:true}                  |
==> | Node[24]{type:"value",name:"string",value:"column2",delete_flag:true} |
==> | Node[25]{type:"simple",name:"データ型",delete_flag:true}                  |
==> +-----------------------------------------------------------------------+
==> 13 rows
==> 3 ms
==> 

まあ、ここまでは良い。あとはRETURN句をDELETEに変えれば、delete_flagを持った(他ノードへの関連を持たない)ノードのみを削除できるはずだ。
ということでポチッとな。

neo4j-sh (0)$ START n=node(*) WHERE not(n.delete_flag? = false) DELETE n;
==> TransactionFailureException: Unable to commit transaction
neo4j-sh (0)$ 

なんじゃそりゃ〜
WHERE句で選択されたノードに対してのみDELETEを発行するはずじゃないのか?

まさかとは思うが、MATCHでの絞り込み結果でしかDELETEが発行できないという酷い仕様(リファレンスには確かにMATCHを使った例しか載っていなかったが)じゃないだろうな・・・。そうではないと思いたいが。
つーか、このエラーメッセージじゃ原因が分からんよ。全く・・・。もし上記が原因なら、きちんとそう明示してほしい。