And here's a (possible) patch to implement this behaviour:
diff --git a/iphone/modules/DatabaseModule/DatabaseModule.m b/iphone/modules/DatabaseModule/DatabaseModule.m
index 33702c0..24b901a 100644
--- a/iphone/modules/DatabaseModule/DatabaseModule.m
+++ b/iphone/modules/DatabaseModule/DatabaseModule.m
@@ -293,7 +293,8 @@
"remove:function(){Ti.Database._RMDB(this._TOKEN);},"
"execute:function(query){"
"var args=[];"
- "for(var i=1;i<arguments.length;i++){args.push(arguments[i]);}"
+ "for(var i=1;i<arguments.length;i++){if((arguments[i]).constructor == Array){"
+ "args.concat(arguments[i]);} else {args.push(arguments[i]);}}"
"var comm=Ti.Database._EXEDB(this._TOKEN,query,args);this.rowsAffected=comm.rowsAffected;this.lastInsertRowId=comm.lastRow;"
"var res={_TOKEN:comm.token,"
"fields:comm.fields,rowCount:comm.rowCount,values:comm.values,"
-- maybe you want it to be even more robust but it should
actually implement more or less the behaviour of the Desktop
variant of Titanium. At least my tests on the iPhone plus the
DB-related Unit tests in the titanium_mobile "Titanium" App did not
show any isses w/ that patch when I custom built the SDK.