A slighty more exteme version than that posted by @Guy, would be the following.
1). Break the Polygons into constituent linestring. You can do this using ST_Dump and two sets of generate series offset by one, to get each pair of adjacent points, which is then handed to ST_MakeLine.
2). Get a list of distinct linestrings. ie, removing duplicates, as this will distort the counts for number of equal line segments otherwise.
3). Create a table called same using the ST_Equals function.
4). Get a table with the number of polygon lines, which is one less than the number of points, given repeated start/end point.
5). Create a table called equals where the number of linestrings are the same from steps 3 and 4.
6). Any id from step 5, is fully covered by linestrings.
Depending on how many lines/polygons you have, this could be quite inefficient, as it compares comparing all line segments from both tables.
WITH poly_lines (id, poly_line, numpoints) as
(SELECT id, ST_MakeLine(startpoint, endpoint), numpoints
FROM (SELECT
ST_PointN(geom, generate_series(1, ST_Npoints(geom) -1 )) as startpoint,
ST_PointN(geom, generate_series(2, ST_Npoints(geom))) as endpoint,
id, numpoints
FROM (SELECT
id, (ST_Dump(ST_Exteriorring(geom))).geom, ST_NPoints(ST_Exteriorring(geom))-1 as numpoints
FROM polygons)
as pts)
as g),
lines (lines, id) as (SELECT DISTINCT on (geom) geom, id
FROM linestrings ),
same (pid, lid) as (
SELECT
p.id, l.id
FROM poly_lines p, lines l
WHERE ST_Equals(p.poly_line, l.lines) = 't'),
polygon_lines (id, num_poly_pts) as
(SELECT
id, ST_NPoints(ST_Exteriorring(geom))-1
FROM polygons),
equals (pid, nlines, npoints) as
(SELECT s.pid, count(lid) as num_line_pts, num_poly_pts
FROM same s INNER JOIN polygon_lines pp on s.pid = pp.id
GROUP BY pid, id, num_poly_pts)
SELECT pid from equals WHERE nlines = npoints;