How do you select an edge loop with BMesh?
This is almost a duplicate of this question. Simply add the select statement at the end. I also branched the code sample to go in both directions of the first edge.

e = bm.edges[0]

for loop in e.link_loops:
    if len(loop.vert.link_edges) == 4:
        e.select = True

        while len(loop.vert.link_edges) == 4:
            # jump between BMLoops to the next BMLoop we need
            loop = loop.link_loop_prev.link_loop_radial_prev.link_loop_prev

            # following edge in the edge loop
            e_next = loop.edge
            e_next.select = True