Unfortunately tiger doesn't provide borough data. The only way it knows a place is in Brooklyn is by the zip code and even then it doesn't really know the place as brooklyn, just NY,NY.
Now what you could do is add entries to the tiger_data.ny_place tables.
Note how for example:
SELECT pprint_addy(addy), ST_AsText(geomout) FROM geocode('Bronxville, NY');
Gives you an answer.
You could get borough boundaries from here:
I'd keep the data separate though just so in case you need to reload NY you don't mess up your extra data. Then create a table:
CREATE TABLE tiger_data.extra_ny_place_borough(
CONSTRAINT uidx_extra_ny_place_boroughs_gid UNIQUE (gid),
CONSTRAINT chk_statefp CHECK (statefp = '36') )
Then the nycboroughs dataset you downloaded, load in a staging table say tiger_staging.nyc_boroughs.
Then do an insert:
tiger_data.extra_ny_place_borough(statefp, plcidfp, placefp,
name, namelsad, the_geom)
'36B' || lpad(boro_code::integer::text,4,'0'),
'B' || lpad(boro_code::integer::text,4,'0'),
boro_name, boro_name, ST_SetSRID(geom,4269)
Now when you do:
SELECT pprint_addy(addy), ST_AsText(geomout), rating
FROM geocode('Brooklyn, NY',1);
You'll get an answer.
pprint_addy | st_astext | rating
Brooklyn, NY | POINT(-73.9476763575345 40.6447341320196) | 100
The rating will be 100 which means its a pretty sucky answer, but best you can hope for given your address is not specific enough. That should be approximately the centroid of brooklyn.