Now, add a place for the polygon count and fill it up by joining the centroids of the small cut-up polygons to the original circles, and summarizing for each small piece. For larger data sets an index on the circles table at least will be required to make things not impossibly slow.
create index circles_gix on circles using gist (geom);
alter table polys add column count integer;integer default 0;
update polys set count = p.count
from (
select count(*) as count,
p.id as id
from polys p
join circles c
on st_contains(c.geom, st_pointonsurface(p.geom))
group by p.id
) as p
where p.id = polys.id;