I think, this is the problem of sqlite.
Just found it in http://sqlite.org/omitted.html
Very first item says:
FOREIGN KEY constraints are parsed but are not enforced. However, the equivalent constraint enforcement can be achieved using triggers. The SQLite source tree contains source code and documentation for a C program that will read an SQLite database, analyze the foreign key constraints, and generate appropriate triggers automatically.
It is very likely that my initial classes were correct (just ForeignKey), and also the database schema is correctly created by sqlobject.

From: petr.jakes.tpc@gmail.com [mailto:petr.jakes.tpc@gmail.com] On Behalf Of Petr Jakeš
Sent: Thursday, January 08, 2009 12:29 PM
To: Zoran Bošnjak
Cc: sqlobject-discuss
Subject: Re: [SQLObject] FW: table ralations
Than maybe you can try exactly what in the example is:

child=MultipleJoin("Blocks", joinColumn="parent_id")

You can have as many children as you want (and no woman necessary ;-) )

But "one parent" only (no multiple parents - it does not work even in the real live)

If you are looking for many-to-many relationship, try this: